/**
 * Created by ljx on 2020/4/20.
 */
// import { useSystemStoreWithOut } from '/@/store/modules/system';
import { toFixed, mul, div } from "@/utils/caculate";
// import { indexZoom } from '/@/utils/tools/commonFont';
import {
  BASE_FONTSIZE,
  MIN_FONTSIZE,
  MAX_SCREENSIZE
} from "@/utils/staticData";
import { useSettingStoreHook } from "@/store/modules/settings";

// 打上注释的rem适配计算
(function (doc, win, baseW) {
  const settingsStore = useSettingStoreHook();
  // const indexFontSize = systemStore.sysSettings.otherSettings?.indexFontSize;
  // const zoom = indexFontSize ? indexZoom(indexFontSize) : 1;
  const zoom = 1;
  const minRootFont = MIN_FONTSIZE * zoom;

  const docEl = doc.documentElement; // 返回一个页面的根节点元素(当前页面的html标签)

  let dpr = toFixed(window.devicePixelRatio * 1, 2) || 1;
  dpr = dpr === Math.ceil(dpr) ? Math.ceil(dpr) : dpr;
  docEl.setAttribute("data-dpr", dpr);
  const recalc = function (rootFont = BASE_FONTSIZE * zoom) {
    let clientWidth = docEl.clientWidth; // 获取当前页面的实际宽度
    if (!clientWidth) return;
    // 设置当前页面宽度 如果大于或等于1920尺寸 宽度则为1920去计算 // 小于1920尺寸则按照当前页面宽度计算
    clientWidth = clientWidth >= MAX_SCREENSIZE ? MAX_SCREENSIZE : clientWidth;
    // 计算得出 当前屏幕下的根节点元素的html像素单位  24是1rem=24px  方便计算的情况下可以书写50 1rem=50px
    if (mul(rootFont, div(clientWidth, baseW)) < minRootFont) {
      docEl.style.fontSize = minRootFont + "px"; // 根节点fontSize最小16px
      settingsStore.setRootSize(minRootFont);
    } else {
      const result = mul(rootFont, div(clientWidth, baseW))
      docEl.style.fontSize = result + "px"; // 当前根节点font-size的大小
      settingsStore.setRootSize(result);
    }
  };

  if (!doc.addEventListener) return;

  recalc();
  // 暂不执行随着屏幕大小变化改变
  // 第一个参数：添加事件 第二个参数：触发事件所执行的函数 第三个参数：可选 布尔值 指定事件是否在捕获或冒泡阶段执行
  // win.addEventListener(resizeEvt, recalc, false)
  // doc.addEventListener('DOMContentLoaded', recalc, false)
  // 自定义方法在改变布局大小时使用
  window.onresize = () => {
    recalc();
  };
})(document, window, 1440);
